RolesGuard   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 15
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 14
dl 0
loc 15
rs 10
c 0
b 0
f 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A canActivate 0 11 2
1
import { Injectable, CanActivate, ExecutionContext} from '@nestjs/common';
2
import { Reflector } from '@nestjs/core';
3
4
@Injectable()
5
export class RolesGuard implements CanActivate {
6
  constructor(private reflector: Reflector) {}
7
8
  public canActivate(context: ExecutionContext): boolean {
9
    const roles = this.reflector.get<string[]>('roles', context.getHandler());
10
11
    if (!roles) {
12
      return true;
13
    }
14
15
    const request = context.switchToHttp().getRequest();
16
17
    return roles.includes(request.user.role);
18
  }
19
}
20